4f32664873a778c4ae9eabca481958cb58a2ffb5,src/main/java/org/highj/data/collection/set/SetMonadPlus.java,SetMonadPlus,ap,#_#_#,17

Before Change


    public <A, B> Set<B> ap(_<Set.µ, Function<A, B>> fn, _<Set.µ, A> nestedA) {
        Set<B> result = Set.empty();
        for (Function<A, B> f : Set.narrow(fn)) {
            for (A a : Set.narrow(nestedA)) {
                result = result.plus(f.apply(a));
            }
        }
        return result;
    }

    @Override

After Change



    @Override
    default <A, B> Set<B> ap(_<Set.µ, Function<A, B>> fn, _<Set.µ, A> nestedA) {
        return Set.narrow(nestedA).ap(Set.narrow(fn));
    }

    @Override